home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / ActiveX Controlls / NCTAudioEditor2 ActiveX DLL / NCTAudioEditor2.exe / {app} / Samples / TestDelphiAudioEditor2 / Setup.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2003-03-28  |  16.7 KB  |  440 lines

  1. unit Setup;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, ExtCtrls, StdCtrls, Spin, ComCtrls, NCTAUDIOEDITOR2Lib_TLB, FileCtrl, Math;
  8.  
  9. type
  10.   TfrmOptions = class(TForm)
  11.     PageControl1: TPageControl;
  12.     tSystem: TTabSheet;
  13.     tScales: TTabSheet;
  14.     tColors: TTabSheet;
  15.     tData: TTabSheet;
  16.     tRecording: TTabSheet;
  17.     GroupBox1: TGroupBox;
  18.     Label1: TLabel;
  19.     spinBufSize: TSpinEdit;
  20.     Label2: TLabel;
  21.     spinBufCount: TSpinEdit;
  22.     Label3: TLabel;
  23.     spinBufTick: TSpinEdit;
  24.     Label4: TLabel;
  25.     GroupBox2: TGroupBox;
  26.     txtTempDir: TEdit;
  27.     Label5: TLabel;
  28.     spinUndoRedo: TSpinEdit;
  29.     chSENAI: TCheckBox;
  30.     GroupBox3: TGroupBox;
  31.     chHSEnable: TCheckBox;
  32.     chHSGrid: TCheckBox;
  33.     cmbHSType: TComboBox;
  34.     btnHSFont: TButton;
  35.     GroupBox4: TGroupBox;
  36.     chVSEnable: TCheckBox;
  37.     chVSGrid: TCheckBox;
  38.     cmbVSType: TComboBox;
  39.     btnVSFont: TButton;
  40.     cmbVSOrien: TComboBox;
  41.     rgBorder: TRadioGroup;
  42.     GroupBox5: TGroupBox;
  43.     chMarkerBarEnabled: TCheckBox;
  44.     chMarkerBkEnabled: TCheckBox;
  45.     lstColors: TListBox;
  46.     btnChangeColor: TButton;
  47.     ColorPanel: TPanel;
  48.     ColorDialog1: TColorDialog;
  49.     chSmooth: TCheckBox;
  50.     lblCrossfadeTime: TLabel;
  51.     spinCrossfadeTime: TSpinEdit;
  52.     lblCrossfadeTimeMs: TLabel;
  53.     GroupBox6: TGroupBox;
  54.     gbAttack: TGroupBox;
  55.     gbRelease: TGroupBox;
  56.     GroupBox9: TGroupBox;
  57.     rgVisType: TRadioGroup;
  58.     spinAttackTime: TSpinEdit;
  59.     spinAttackLevel: TSpinEdit;
  60.     spinReleaseLevel: TSpinEdit;
  61.     spinReleaseTime: TSpinEdit;
  62.     lblAttackTime: TLabel;
  63.     lblAttackLevel: TLabel;
  64.     lblReleaseLevel: TLabel;
  65.     lblReleaseTime: TLabel;
  66.     chAccuEnabled: TCheckBox;
  67.     spinAGCHighLevel: TSpinEdit;
  68.     spinAGCRate: TSpinEdit;
  69.     spinAGCLowLevel: TSpinEdit;
  70.     chAGCEnabled: TCheckBox;
  71.     lblAGCLowLevel: TLabel;
  72.     lblAGCHighLevel: TLabel;
  73.     lblAGCRate: TLabel;
  74.     btnChangeDir: TButton;
  75.     FontDialog1: TFontDialog;
  76.     Label15: TLabel;
  77.     Label16: TLabel;
  78.     Label17: TLabel;
  79.     procedure lstColorsClick(Sender: TObject);
  80.     procedure FormShow(Sender: TObject);
  81.     procedure btnChangeColorClick(Sender: TObject);
  82.     procedure btnChangeDirClick(Sender: TObject);
  83.     procedure chAGCEnabledClick(Sender: TObject);
  84.     procedure chAccuEnabledClick(Sender: TObject);
  85.     procedure spinBufSizeChange(Sender: TObject);
  86.     procedure spinBufCountChange(Sender: TObject);
  87.     procedure spinBufTickChange(Sender: TObject);
  88.     procedure spinUndoRedoChange(Sender: TObject);
  89.     procedure chSENAIClick(Sender: TObject);
  90.     procedure chHSEnableClick(Sender: TObject);
  91.     procedure chHSGridClick(Sender: TObject);
  92.     procedure chVSEnableClick(Sender: TObject);
  93.     procedure chVSGridClick(Sender: TObject);
  94.     procedure cmbHSTypeClick(Sender: TObject);
  95.     procedure cmbVSTypeClick(Sender: TObject);
  96.     procedure cmbVSOrienClick(Sender: TObject);
  97.     procedure rgBorderClick(Sender: TObject);
  98.     procedure chMarkerBarEnabledClick(Sender: TObject);
  99.     procedure chMarkerBkEnabledClick(Sender: TObject);
  100.     procedure chSmoothClick(Sender: TObject);
  101.     procedure spinCrossfadeTimeChange(Sender: TObject);
  102.     procedure spinAttackTimeChange(Sender: TObject);
  103.     procedure spinAttackLevelChange(Sender: TObject);
  104.     procedure spinReleaseTimeChange(Sender: TObject);
  105.     procedure spinReleaseLevelChange(Sender: TObject);
  106.     procedure spinAGCLowLevelChange(Sender: TObject);
  107.     procedure spinAGCHighLevelChange(Sender: TObject);
  108.     procedure spinAGCRateChange(Sender: TObject);
  109.     procedure rgVisTypeClick(Sender: TObject);
  110.     procedure btnHSFontClick(Sender: TObject);
  111.     procedure btnVSFontClick(Sender: TObject);
  112.   private
  113.     { Private declarations }
  114.   public
  115.     { Public declarations }
  116.     Colors: IAudioEditor2Colors;
  117.   end;
  118.  
  119. var
  120.   frmOptions: TfrmOptions;
  121.  
  122. implementation
  123.  
  124. uses Main;
  125.  
  126. {$R *.dfm}
  127. //---------------------------------------------------------------------
  128. procedure TfrmOptions.lstColorsClick(Sender: TObject);
  129. begin
  130.     case (lstColors.ItemIndex) of
  131.         0: ColorPanel.Color := TColor(Colors.DigitalWaveform);
  132.         1: ColorPanel.Color := TColor(Colors.AnalogWaveform);
  133.         2: ColorPanel.Color := TColor(Colors.Background);
  134.         3: ColorPanel.Color := TColor(Colors.CenterLine);
  135.         4: ColorPanel.Color := TColor(Colors.SelectDigitalWaveform);
  136.         5: ColorPanel.Color := TColor(Colors.SelectAnalogWaveform);
  137.         6: ColorPanel.Color := TColor(Colors.SelectBackground);
  138.         7: ColorPanel.Color := TColor(Colors.SelectCenterLine);
  139.         8: ColorPanel.Color := TColor(Colors.Grid);
  140.         9: ColorPanel.Color := TColor(Colors.Cursor);
  141.         10: ColorPanel.Color := TColor(Colors.PlayCursor);
  142.         11: ColorPanel.Color := TColor(Colors.Boundary);
  143.         12: ColorPanel.Color := TColor(Colors.Scales);
  144.         13: ColorPanel.Color := TColor(Colors.Font);
  145.         14: ColorPanel.Color := TColor(Colors.CueMarker);
  146.         15: ColorPanel.Color := TColor(Colors.RangeMarker);
  147.         16: ColorPanel.Color := TColor(Colors.RangeMarkerBackground);
  148.     end;
  149. end;
  150. //---------------------------------------------------------------------------
  151.  
  152. procedure TfrmOptions.FormShow(Sender: TObject);
  153. begin
  154.     Colors := frmMain.AudioEditor1.Colors;
  155.     lstColors.ItemIndex := 0;
  156.     lstColorsClick(Sender);
  157.     spinBufSize.Value := frmMain.AudioEditor1.DeviceInput.BufferSize;
  158.     spinBufCount.Value := frmMain.AudioEditor1.DeviceInput.BufferCount;
  159.     spinBufTick.Value := frmMain.AudioEditor1.DeviceInput.TimerInterval;
  160.     txtTempDir.Text := frmMain.AudioEditor1.TempDirectory;
  161.     spinUndoRedo.Value := frmMain.AudioEditor1.UndoRedoCount;
  162.     chSENAI.Checked := frmMain.AudioEditor1.FileInfo.SaveExtraInfoEnabled;
  163.  
  164.     chHSGrid.Checked := frmMain.AudioEditor1.ScaleY.Grid;
  165.     chVSGrid.Checked := frmMain.AudioEditor1.ScaleX.Grid;
  166.     chHSEnable.Checked := frmMain.AudioEditor1.ScaleX.Visible;
  167.     chVSEnable.Checked := frmMain.AudioEditor1.ScaleY.Visible;
  168.  
  169.     rgBorder.ItemIndex := frmMain.AudioEditor1.TypeBorder;
  170.     cmbHSType.ItemIndex := frmMain.AudioEditor1.ScaleX.Type_ - 1;
  171.     cmbVSType.ItemIndex := frmMain.AudioEditor1.ScaleY.Type_ - 1;
  172.     cmbVSOrien.ItemIndex := frmMain.AudioEditor1.ScaleY.Orientation - 1;
  173.  
  174.     chMarkerBarEnabled.Checked := frmMain.AudioEditor1.MarkerBarEnabled;
  175.     chMarkerBkEnabled.Checked := frmMain.AudioEditor1.MarkerBackgroundEnabled;
  176.  
  177.     chSmooth.Checked := frmMain.AudioEditor1.Transform.SmoothEnabled;
  178.     spinCrossfadeTime.Value := frmMain.AudioEditor1.Transform.SmoothTime;
  179.  
  180.     rgVisType.ItemIndex := frmMain.AudioEditor1.RecordVisualizationType - 1;
  181.     chAccuEnabled.Checked := frmMain.AudioEditor1.Recorder.AccuEnabled;
  182.     
  183.     spinAttackTime.Value := frmMain.AudioEditor1.Recorder.AccuAttackTime;
  184.     spinReleaseTime.Value := frmMain.AudioEditor1.Recorder.AccuReleaseTime;
  185.     spinAttackLevel.Value := frmMain.AudioEditor1.Recorder.AccuAttackLevel;
  186.     spinReleaseLevel.Value := frmMain.AudioEditor1.Recorder.AccuReleaseLevel;
  187.  
  188.     spinAGCLowLevel.Value := frmMain.AudioEditor1.Recorder.AGCLowLevel;
  189.     spinAGCHighLevel.Value := frmMain.AudioEditor1.Recorder.AGCHighLevel;
  190.     spinAGCRate.Value := Floor(frmMain.AudioEditor1.Recorder.AGCAttackTime);
  191.     chAGCEnabled.Checked := frmMain.AudioEditor1.Recorder.AGCEnabled;
  192.     
  193.     chAGCEnabledClick(Sender);
  194.     chAccuEnabledClick(Sender);
  195.     chSmoothClick(Sender);
  196. end;
  197. //---------------------------------------------------------------------------
  198.  
  199. procedure TfrmOptions.btnChangeColorClick(Sender: TObject);
  200. begin
  201.     if (ColorDialog1.Execute()) then begin
  202.         ColorPanel.Color := ColorDialog1.Color;
  203.         case (lstColors.ItemIndex) of
  204.             0: Colors.DigitalWaveform := ColorPanel.Color; 
  205.             1: Colors.AnalogWaveform := ColorPanel.Color; 
  206.             2: Colors.Background := ColorPanel.Color; 
  207.             3: Colors.CenterLine := ColorPanel.Color; 
  208.             4: Colors.SelectDigitalWaveform := ColorPanel.Color; 
  209.             5: Colors.SelectAnalogWaveform := ColorPanel.Color; 
  210.             6: Colors.SelectBackground := ColorPanel.Color; 
  211.             7: Colors.SelectCenterLine := ColorPanel.Color; 
  212.             8: Colors.Grid := ColorPanel.Color; 
  213.             9: Colors.Cursor := ColorPanel.Color; 
  214.             10: Colors.PlayCursor := ColorPanel.Color; 
  215.             11: Colors.Boundary := ColorPanel.Color; 
  216.             12: Colors.Scales := ColorPanel.Color; 
  217.             13: Colors.Font := ColorPanel.Color; 
  218.             14: Colors.CueMarker := ColorPanel.Color; 
  219.             15: Colors.RangeMarker := ColorPanel.Color; 
  220.             16: Colors.RangeMarkerBackground := ColorPanel.Color;
  221.         end;
  222.     end;
  223. end;
  224. //---------------------------------------------------------------------------
  225.  
  226. procedure TfrmOptions.btnChangeDirClick(Sender: TObject);
  227. var
  228.     s: AnsiString;
  229. begin
  230.     s := txtTempDir.Text;
  231.     if (SelectDirectory('Select Temp Directory','',s)) then begin
  232.         frmMain.AudioEditor1.TempDirectory := s;
  233.     end;
  234.     txtTempDir.Text := frmMain.AudioEditor1.TempDirectory;
  235. end;
  236. //---------------------------------------------------------------------------
  237.  
  238. procedure TfrmOptions.chAGCEnabledClick(Sender: TObject);
  239. begin
  240.     frmMain.AudioEditor1.Recorder.AGCEnabled := chAGCEnabled.Checked;
  241.     spinAGCRate.Enabled := chAGCEnabled.Checked;
  242.     lblAGCRate.Enabled := chAGCEnabled.Checked;
  243.     spinAGCLowLevel.Enabled := chAGCEnabled.Checked;
  244.     lblAGCLowLevel.Enabled := chAGCEnabled.Checked;
  245.     spinAGCHighLevel.Enabled := chAGCEnabled.Checked;
  246.     lblAGCHighLevel.Enabled := chAGCEnabled.Checked;
  247.     frmMain.btnAGC.Down := chAGCEnabled.Checked;
  248. end;
  249. //---------------------------------------------------------------------------
  250.  
  251. procedure TfrmOptions.chAccuEnabledClick(Sender: TObject);
  252. begin
  253.     frmMain.AudioEditor1.Recorder.AccuEnabled := chAccuEnabled.Checked;
  254.     
  255.     gbRelease.Enabled := chAccuEnabled.Checked;
  256.     gbAttack.Enabled := chAccuEnabled.Checked;
  257.  
  258.     spinAttackTime.Enabled := chAccuEnabled.Checked;
  259.     spinAttackLevel.Enabled := chAccuEnabled.Checked;
  260.     spinReleaseTime.Enabled := chAccuEnabled.Checked;
  261.     spinReleaseLevel.Enabled := chAccuEnabled.Checked;
  262.  
  263.     lblAttackTime.Enabled := chAccuEnabled.Checked;
  264.     lblAttackLevel.Enabled := chAccuEnabled.Checked;
  265.     lblReleaseTime.Enabled := chAccuEnabled.Checked;
  266.     lblReleaseLevel.Enabled := chAccuEnabled.Checked;
  267. end;
  268. //---------------------------------------------------------------------------
  269.  
  270. procedure TfrmOptions.spinBufSizeChange(Sender: TObject);
  271. begin
  272.     frmMain.AudioEditor1.DeviceInput.BufferSize := spinBufSize.Value;
  273.     frmMain.AudioEditor1.DeviceOutput.BufferSize := spinBufSize.Value;
  274. end;
  275. //---------------------------------------------------------------------------
  276.  
  277. procedure TfrmOptions.spinBufCountChange(Sender: TObject);
  278. begin
  279.     frmMain.AudioEditor1.DeviceInput.BufferCount := spinBufCount.Value;
  280.     frmMain.AudioEditor1.DeviceOutput.BufferCount := spinBufCount.Value;
  281. end;
  282. //---------------------------------------------------------------------------
  283.  
  284. procedure TfrmOptions.spinBufTickChange(Sender: TObject);
  285. begin
  286.     frmMain.AudioEditor1.DeviceInput.TimerInterval := spinBufTick.Value;
  287.     frmMain.AudioEditor1.DeviceOutput.TimerInterval := spinBufTick.Value;
  288. end;
  289. //---------------------------------------------------------------------------
  290.  
  291. procedure TfrmOptions.spinUndoRedoChange(Sender: TObject);
  292. begin
  293.     frmMain.AudioEditor1.UndoRedoCount := spinUndoRedo.Value;
  294. end;
  295. //---------------------------------------------------------------------------
  296.  
  297. procedure TfrmOptions.chSENAIClick(Sender: TObject);
  298. begin
  299.     frmMain.AudioEditor1.FileInfo.SaveExtraInfoEnabled := chSENAI.Checked;
  300. end;
  301. //---------------------------------------------------------------------------
  302.  
  303. procedure TfrmOptions.chHSEnableClick(Sender: TObject);
  304. begin
  305.     frmMain.AudioEditor1.ScaleX.Visible := chHSEnable.Checked;
  306. end;
  307. //---------------------------------------------------------------------------
  308.  
  309. procedure TfrmOptions.chHSGridClick(Sender: TObject);
  310. begin
  311.     frmMain.AudioEditor1.ScaleX.Grid := chHSGrid.Checked;
  312. end;
  313. //---------------------------------------------------------------------------
  314.  
  315. procedure TfrmOptions.chVSEnableClick(Sender: TObject);
  316. begin
  317.     frmMain.AudioEditor1.ScaleY.Visible := chVSEnable.Checked;
  318. end;
  319. //---------------------------------------------------------------------------
  320.  
  321. procedure TfrmOptions.chVSGridClick(Sender: TObject);
  322. begin
  323.     frmMain.AudioEditor1.ScaleY.Grid := chVSGrid.Checked;
  324. end;
  325. //---------------------------------------------------------------------------
  326.  
  327. procedure TfrmOptions.cmbHSTypeClick(Sender: TObject);
  328. begin
  329.      frmMain.AudioEditor1.ScaleX.Type_ := cmbHSType.ItemIndex + 1;
  330. end;
  331. //---------------------------------------------------------------------------
  332.  
  333. procedure TfrmOptions.cmbVSTypeClick(Sender: TObject);
  334. begin
  335.     frmMain.AudioEditor1.ScaleY.Type_ := cmbVSType.ItemIndex + 1;
  336. end;
  337. //---------------------------------------------------------------------------
  338.  
  339. procedure TfrmOptions.cmbVSOrienClick(Sender: TObject);
  340. begin
  341.     frmMain.AudioEditor1.ScaleY.Orientation := cmbVSOrien.ItemIndex + 1;
  342. end;
  343. //---------------------------------------------------------------------------
  344.  
  345. procedure TfrmOptions.rgBorderClick(Sender: TObject);
  346. begin
  347.     frmMain.AudioEditor1.TypeBorder := rgBorder.ItemIndex;
  348. end;
  349. //---------------------------------------------------------------------------
  350.  
  351. procedure TfrmOptions.chMarkerBarEnabledClick(Sender: TObject);
  352. begin
  353.     frmMain.AudioEditor1.MarkerBarEnabled := chMarkerBarEnabled.Checked;
  354. end;
  355. //---------------------------------------------------------------------------
  356.  
  357. procedure TfrmOptions.chMarkerBkEnabledClick(Sender: TObject);
  358. begin
  359.     frmMain.AudioEditor1.MarkerBackgroundEnabled := chMarkerBkEnabled.Checked;
  360. end;
  361. //---------------------------------------------------------------------------
  362.  
  363. procedure TfrmOptions.chSmoothClick(Sender: TObject);
  364. begin
  365.     frmMain.AudioEditor1.Transform.SmoothEnabled := chSmooth.Checked;
  366.     lblCrossfadeTimeMs.Enabled := chSmooth.Checked;
  367.     lblCrossfadeTime.Enabled := chSmooth.Checked;
  368.     spinCrossfadeTime.Enabled := chSmooth.Checked;
  369. end;
  370. //---------------------------------------------------------------------------
  371.  
  372. procedure TfrmOptions.spinCrossfadeTimeChange(Sender: TObject);
  373. begin
  374.     frmMain.AudioEditor1.Transform.SmoothTime := spinCrossfadeTime.Value;
  375. end;
  376. //---------------------------------------------------------------------------
  377.  
  378. procedure TfrmOptions.spinAttackTimeChange(Sender: TObject);
  379. begin
  380.     frmMain.AudioEditor1.Recorder.AccuAttackTime := spinAttackTime.Value;
  381. end;
  382. //---------------------------------------------------------------------------
  383.  
  384. procedure TfrmOptions.spinAttackLevelChange(Sender: TObject);
  385. begin
  386.     frmMain.AudioEditor1.Recorder.AccuAttackLevel := spinAttackLevel.Value;
  387. end;
  388. //---------------------------------------------------------------------------
  389.  
  390. procedure TfrmOptions.spinReleaseTimeChange(Sender: TObject);
  391. begin
  392.     frmMain.AudioEditor1.Recorder.AccuReleaseTime := spinReleaseTime.Value;
  393. end;
  394. //---------------------------------------------------------------------------
  395.  
  396. procedure TfrmOptions.spinReleaseLevelChange(Sender: TObject);
  397. begin
  398.     frmMain.AudioEditor1.Recorder.AccuReleaseLevel := spinReleaseLevel.Value;
  399. end;
  400. //---------------------------------------------------------------------------
  401.  
  402. procedure TfrmOptions.spinAGCLowLevelChange(Sender: TObject);
  403. begin
  404.     frmMain.AudioEditor1.Recorder.AGCLowLevel := spinAGCLowLevel.Value;
  405. end;
  406. //---------------------------------------------------------------------------
  407.  
  408. procedure TfrmOptions.spinAGCHighLevelChange(Sender: TObject);
  409. begin
  410.     frmMain.AudioEditor1.Recorder.AGCHighLevel := spinAGCHighLevel.Value;
  411. end;
  412. //---------------------------------------------------------------------------
  413.  
  414. procedure TfrmOptions.spinAGCRateChange(Sender: TObject);
  415. begin
  416.     frmMain.AudioEditor1.Recorder.AGCAttackTime := spinAGCRate.Value;
  417. end;
  418. //---------------------------------------------------------------------------
  419.  
  420. procedure TfrmOptions.rgVisTypeClick(Sender: TObject);
  421. begin
  422.     frmMain.AudioEditor1.RecordVisualizationType := rgVisType.ItemIndex + 1;
  423. end;
  424. //---------------------------------------------------------------------------
  425.  
  426. procedure TfrmOptions.btnHSFontClick(Sender: TObject);
  427. begin
  428.     if (FontDialog1.Execute()) then begin
  429.     end;
  430. end;
  431. //---------------------------------------------------------------------------
  432.  
  433. procedure TfrmOptions.btnVSFontClick(Sender: TObject);
  434. begin
  435.     if (FontDialog1.Execute()) then begin
  436.     end;    
  437. end;
  438. //---------------------------------------------------------------------------
  439. end.
  440.